package com.ict.web.dto;

import com.ict.common.annotation.Excel;
import com.ict.web.controller.file.dto.YzqFileDTO;
import com.ict.web.domain.SystemInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;

@Data
public class SchemeDeclarationEditDto {
    /** 设计单位 */
    @Excel(name = "设计单位")
    private String designUnit;

    /** 可行性研究报告 */
    @Excel(name = "可行性研究报告")
    private YzqFileDTO researchReport;

    /** 概算方案 */
    @Excel(name = "概算方案")
    private YzqFileDTO budgetProposal;

    /** 初设方案 */
    @Excel(name = "初设方案")
    private YzqFileDTO preliminaryDesignScheme;

    /** 预算方案 */
    @Excel(name = "预算方案")
    private YzqFileDTO budgetProgramme;

    /** 系统架构简述 */
    @Excel(name = "系统架构简述")
    private String systemArchitecture;

    /** 云资源需求申请表 */
    @ApiModelProperty(value = "云资源需求申请表")
    private YzqFileDTO cloudResourceApplication;

    /** 删除标识（0：正常，1：删除） */
    private String delFlag;


    /** 项目id */
    @ApiModelProperty(value = "项目id")
    private Long proId;

    @ApiModelProperty(value = "系统信息列表")
    private List<SystemInfo> systemInfoList;

    @ApiModelProperty(value = "政务数据资源目录清单")
    private List<GovernmentDataResourceAddDto> governmentDataResourcesAddDtoList;

    @ApiModelProperty(value = "云资源需求列表")
    private List<InsertCloudResourceDto> insertCloudResourceDtoList;

    @ApiModelProperty(value = "物联设备信息")
    private List<InsertIotDeviceInfoDto> insertIotDeviceInfoDtosList;

    /** 项目投资估算（万元） */
    @ApiModelProperty(value = "项目投资估算")
    @NotNull(message = "项目投资估算不能为空")
    @Digits(integer=14,fraction = 6,message = "整数位上限为14位，小数位上限为6位")
    private BigDecimal projectInvestmentEstimation;

    /** 评估方法 */
    @ApiModelProperty(value = "评估方法")
    @NotBlank(message = "评估方法不能为空")
    private String assessmentMethod;

    /** 项目代码 */
    @ApiModelProperty(value = "项目代码")
    @Size(max = 32, message = "项目代码长度不能超过32")
    private String projectCode;
}
